Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.6.22
|
Leadtools.Barcode Namespace > BarcodeReader Class > ReadBarcode Method : ReadBarcode(RasterImage,LeadRect,BarcodeSymbology[],IBarcodeReadOptions[]) Method |
public BarcodeData ReadBarcode( RasterImage image, LeadRect searchBounds, BarcodeSymbology[] symbologies, IBarcodeReadOptions[] options )
'Declaration
Public Overloads Function ReadBarcode( _ ByVal image As RasterImage, _ ByVal searchBounds As LeadRect, _ ByVal symbologies() As BarcodeSymbology, _ ByVal options() As IBarcodeReadOptions _ ) As BarcodeData
'Usage
Dim instance As BarcodeReader Dim image As RasterImage Dim searchBounds As LeadRect Dim symbologies() As BarcodeSymbology Dim options() As IBarcodeReadOptions Dim value As BarcodeData value = instance.ReadBarcode(image, searchBounds, symbologies, options)
public BarcodeData ReadBarcode( RasterImage image, LeadRect searchBounds, BarcodeSymbology[] symbologies, IBarcodeReadOptions[] options )
function Leadtools.Barcode.BarcodeReader.ReadBarcode(RasterImage,LeadRect,BarcodeSymbology[],IBarcodeReadOptions[])( image , searchBounds , symbologies , options )
public: BarcodeData^ ReadBarcode( RasterImage^ image, LeadRect searchBounds, array<BarcodeSymbology>^ symbologies, array<IBarcodeReadOptions^>^ options )
Note: In LEADTOOLS for .NET, the equivalent to LeadRect is LogicalRectangle, also the equivalent to IBarcodeReadOptions is BarcodeReadOptions.
This example shows how to use this method to read any UPC barcode used to identify products from a rotated image.
using Leadtools; using Leadtools.Codecs; using Leadtools.Barcode; using Leadtools.ImageProcessing; public async Task BarcodeReader_ReadBarcodeExample4() { string imageFileName = @"Assets\Barcode1.tif"; // Create a Barcode engine BarcodeEngine engine = new BarcodeEngine(); // Get the Barcode reader instance BarcodeReader reader = engine.Reader; using(RasterCodecs codecs = new RasterCodecs()) { StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(imageFileName); using(RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile))) { // Rotate the image by 90, so default option of reading horizonal barcodes will not work Debug.WriteLine("Rotating the image by 90 degrees"); RotateCommand rotate = new RotateCommand(90 * 100, RotateCommandFlags.Resize, RasterColorHelper.FromKnownColor(RasterKnownColor.White)); rotate.Run(image); // In the US, UPC barcodes are used to identity products. So, create an array of UPC symbologies BarcodeSymbology[] upcSymbologies = { BarcodeSymbology.UPCA, BarcodeSymbology.UPCE }; // Read the first UPC barcode from the image using default options Debug.WriteLine("Reading barcodes using default options"); BarcodeData barcode = reader.ReadBarcode(image, LeadRectHelper.Empty, upcSymbologies, null); // Show its location and data if found // This will print out "Not found" if(barcode != null) { Debug.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value); } else { Debug.WriteLine("Not found"); } // Now get the options we used previously, and change the 1D linear barcode read options // to search for barcodes in both horizontal and vertical directions // Note: Same options are used for UPCA and UPCE, so we only need one options class OneDBarcodeReadOptions oneDReadOptions = reader.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeReadOptions; // Change the read direction oneDReadOptions.SearchDirection = BarcodeSearchDirection.HorizontalAndVertical; // Try again using our options Debug.WriteLine("Reading barcodes using our options"); barcode = reader.ReadBarcode(image, LeadRectHelper.Empty, upcSymbologies, new IBarcodeReadOptions[] { oneDReadOptions }); // Show its location and data if found // This will find the barcode and print its information now if(barcode != null) { Debug.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value); } else { Debug.WriteLine("Not found"); } } } }